kitti pkl可视化_KITTI 3D Lidar 数据可视化

前言Lilikili:在尝试做Lidar方面的研究的时候,发现对于可视化大家的脑洞还不是很够,所以提供一些思路让大家蛤一下。a739ef1ba60c42f0cacc586144e75f71.png

数据集

本次使用的数据集是KITTI 3D object detection条目下面的data_object_velodyne.zip,里面存储了二进制存储的Lidar数据。数据大小压缩后是26.7GB,包含7481个frame。对应的Camera数据是data_object_image_3.zip。Label什么的这次涉及不到,想要的自己找去

下载方式:因为内容存在了aws的s3里面,国内下不下来。建议使用迅雷等下载工具。

代码以及工具包

代码请移步Github:https://github.com/LGNRoy/KITTI_3D_Visulation

工具包:numpy, mayavi, matplotlib, pyside

同理,pip install的时候如果轮子下不来,建议直接去pip官网上用下载工具下载对应的轮子

基本的可视化2d2af652c051cb64ec9641c5c8f366f7.png数据集编号000001,Lidar可视化展示

这部分的代码参考了CSDN:https://blog.csdn.net/weixin_39999955/article/details/83819196

对Lidar的3D展示使用了mayavi.mlab这个工具包,效果十分强大。提供了UI,支持拖动来进行自由旋转,但是不支持平移。

颜色支持自定义。本文使用了距离(点(x, y, z)到坐标原点的直线距离)作为颜色值,使用了默认的彩虹色系,色系也可以在UI中进行切换。颜色值除了距离以外,也可以设置为高度或者反射率。

脑洞部分(开蛤)

首先来说,思路:Lidar数据是稀疏数据,按(x, y, z)点存储在笛卡尔坐标系。

但是实际上Lidar的工作原理是激光从左到右旋转,每个角度从上到下扫描。

所以依此来思考,应该会有很多点在相同角度(换句话说应该能看到很多的"竖线"),同理高度也可能会这样。

参考下两张图,可以发现,对于墙这个物体,是存在明显的竖线和横线。

那么能否能把稀疏的Lidar数据转化为二维图像数据,并解决稀疏的问题?

比如,把角度和高度离散化作为像素的位置,用距离作为灰度来绘制一张灰度图。bcf55f2219ff61879943e153992644cb.png数据集编号000000,红圈内是Lidar探测到的一面墙

fa963b0efa6f1190350205ae28f13e96.png透过Lidar扫描到的墙,来看墙外面的东西

展示步骤:先计用xy计算角度a,用z来代表高度h,再通过xyz计算出深度d。

对角度进行筛选、对高度进行筛选

用plt.scatter进行展示

展示效果:e57cdcfb547d66a3856bbc296c879e92.png数据集编号000001,横纵坐标分别为角度和高度,颜色代表深度

效果差强人意。希望得到的是方方正正的一张图,每个点都按照横竖完美的对齐排列好,但是并没有。

在后续的数据分析中发现:因为lidar的光点的误差,没有看到竖线,但是点是正态分布在线上和左右,通过一些方法应该能还原出线。

横线这边,图里虽然有明显的线,但是是曲线,这代表高度不适合作为纵轴。采用yz计算出来的角度应该会更合适一点。

总的来说,嗯,挺失败的。

你们想蛤就蛤吧5ca5f088d4f5648cb6aa0b03a5473418.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php mysql 排名_mysql中如何实现排名

mysql中实现排名的方法:使用demo函数,语法为【SELECT banji,avg(score) as AvgS FROM table_test GROUP BY banji ORDER BY AvgS DESC】。mysql中实现排名的方法:可用Demo实现注意里面的A,属于嵌套查询,所以排名会正确…

figtree如何编辑进化树_iTOL快速绘制颜值最高的进化树

iTOL简介大家在看高分文章时,总会惊叹于,为什么人家能做出那么好看而且高大上的系统发育树,而且好看的图也能直接提升文章的档次,冲击高分文章。人家的树不管是从配色还是各种注释信息都让人无可挑剔,而你每次花了半个…

java怎么碰到异常跳过继续执行_Java异常处理很难吗?BAT大厂的架构师是怎么处理Java异常的?...

欢迎关注专栏《Java架构筑基》——专注于Java技术的研究与分享!Java架构筑基​zhuanlan.zhihu.comJava架构筑基——专注于Java技术的研究与分享!后续文章将首发此专栏!欢迎各位Java工程师朋友投稿和关注# 链接 Java程序员福利"常用资料分…

mysql 回滚之后抛出异常_在PHP中 开始事务后,程序抛出异常 没有执行commit也没有执行rollback mysql事务会回滚吗?...

网上有人说开启事务后 sql语句执行错误或程序出错 没有执行rollback的情况下,下一次运行就会自动commit程序出错不会回滚rollback但是也有人说抛出异常等 程序如果MySQL存在没有提交的事务,那么这时候 AUTOCOMMIT 自动提交的参数应该是为 0 的。不过如果…

mygeneration mysql_利用Mygeneration 自动生成maping文件和entity类文件

利用Mygeneration 自动生成maping文件和entity类文件Mygeneration下载要下载1.3.0.3版本, 默认支持mysql了,不用再安装mysql的驱动了。Template Code : 主要使用的模板代码,会实时展示在Template Source选项卡中Interface Code : 根据Templat…

mysql schema命名规范_数据库设计 命名及编码规范

http://blog.csdn.net/seusoftware/archive/2010/04/24/5524414.aspx引用一、综述命名和编码过程中,定义有意义的名称,以易于理解、方便书写为原则。(1)避免使用中文,尽量使用全拼音或全英文,以方便国际化;(2)避免拼音…

怎么检测mysql主从正常_使用pt-table-checksum检查主从复制是否正常

其实对于一个小小的DBA来说,有时候是无法避免这些问题的。于是我们就需要一个工具,来检查主从复制是否正常,是否出现了错误。pt-table-checksum。相关阅读:MySQL 主从复制事件校验 MySQL Replic…

java 自动类型_java类型自动转换

package com.kevin.basic;/** java类型自动转换方面的知识点* int类型 double类型 默认类型*/public class Test {/*** param args*/public static void main(String[] args) {// TODO Auto-generated method stub/* int类型是整数的默认类型。* (1)第一种:正确运行…

a java虚拟机_Java虚拟机

内存分配以及回收Java虚拟机运行时数据区,分为以下几个模块,包含所有线程共有的数据区和线程单独享有的数据区。程序计数器:字节码行号,通过这个计数器来选取下一条需要执行的指令,线程独有。虚拟机栈:线程…

java tostring的用处_JAVA的tostring()方法的作用是什么呢?

展开全部1.toString方法Object类具有一个toString()方法,你创建的每个类都会继承62616964757a686964616fe4b893e5b19e31333365666236该方法。它返回对象的一个String表示,并且对于调试非常有帮助。然而对于默认的toString()方法往往不能满足需…

java软件工程_java复习

计算机一些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础。计算机硬件:CPU、主板(motherboard)、内存(memory)、电源、主机箱、硬盘、显卡、键盘、鼠标、显示器等IO:input输入(鼠标键盘)、output输出(显示器音响)冯诺依曼体系结…

java getparametermap_重写getParameterMap后,报错 ,

想做个参数过滤功能,如何修改,或者其他实现方式ServletExcludeHadler类在HttpServletRequestWrapper类里重写了getParameterMap现在报错java.lang.ClassCastException: org.apache.catalina.util.ParameterMap cannot be cast to java.util.HashMapat co…

java 抽样_Java编程实现二项分布的采样或抽样实例代码

本文研究的主要是Java编程实现二项分布的采样或抽样,下面是详细实现代码。如下程序为n100,p0.9的二项分布采样,共采样10000次package function;import org.apache.commons.math3.distribution.BetaDistribution;import org.apache.commons.ma…

java中什么是 伪共享_【Java】聊聊多线程中的伪共享现象

首页专栏java文章详情0聊聊多线程中的伪共享现象小强大人发布于 1 月 27 日什么是伪共享?讲伪共享之前,让我们先乘坐时光机,回到大学课堂,来重温下计算机组成原理的基础知识。我们知道,CPU和内存的运行速度相差很大&am…

新闻资讯java开发_新闻资讯app开发的功能与意义

获取新闻的目的因人而异,但对获取新闻的需求是一样的。现在是移动互联网的时代。人们不再想依靠传统的手段,而把便利作为获取服务的核心。因此,开发新闻咨询app是必要的。其到来不仅意味着获得新闻登上新的阶梯,还因为画出了圆满的…

php实时上传多张图片,PHP实现多张图片上传预览功能

PHP实现多张图片上传预览功能,支持左右移动图片切换位置、删除图片,限制图片上传的数量等-向左移动图片function reverse_left(obj) {var obj_li obj.parents("li");var obj_prev obj_li.prev("li");if (obj_prev.hasClass("…

centos php 默认安装目录,centos系统中的软件安装目录在哪

centos系统中软件的默认安装目录一般在/usr/local或者/opt中。我们还可以通过whereis命令来查看软件的实际安装路径。命令:whereis功能介绍:在特定目录中查找符合条件的文件。这些文件的烈性应属于原始代码,二进制文件,或是帮助文…

php atlas,apache atlas是什么

Atlas是一组可伸缩和可扩展的核心基础治理服务——使企业能够有效和高效地满足Hadoop中的遵从性需求,并允许与整个企业数据生态系统进行集成。Apache Atlas为组织提供开放的元数据管理和治理能力,以建立其数据资产的目录,对这些资产进行分类和…

php2588,搞清楚一下必胜2588z和2582z哪个好点?都有些什么区别?内幕评测分析

这二个必胜2588z和2582z区别不是很大的哈,款式和配置是差不多的,只是必胜2582Z 2052Z更强一些,看个人需要吧,不过家用的话,这两款都是可以的,我自己用的是必胜2582Z 2052Z,款式多大气的&#xf…

超表面透镜相位matlab,基于超透镜的小F数大景深镜头的设计方法及应用与流程...

本发明涉及基于超透镜的小f数大景深镜头的设计方法及应用。背景技术:监控系统中采用的透镜往往要求具有尽量高的成像分辨率和尽量大的景深,通常情况下,高分辨率的透镜一般具有较小f数,大的景深又要求焦距较短。但是利用传统透镜的…